let (dylib, _) = try!(Context::filename_parts(None));
dylib
};
- let (rustc_version, target_triple) = try!(Context::rustc_version());
+ let (rustc_version, rustc_host) = try!(Context::rustc_version());
+ let target_triple = config.target().map(|s| s.to_string());
+ let target_triple = target_triple.unwrap_or(rustc_host);
Ok(Context {
rustc_version: rustc_version,
target_triple: target_triple,
let mut file = File::create(&git_project.root().join(".gitmodules"));
file.write_str(format!("[submodule \"src\"]\n\tpath = src\n\turl={}",
- git_project3.url()).as_slice());
+ git_project3.url()).as_slice()).assert();
git_project.process("git").args(["submodule", "sync"]).exec_with_output().assert();
git_project.process("git").args(["fetch"]).cwd(git_project.root().join("src"))
test!(simple_cross {
if disabled() { return }
+ let mut build = project("builder");
+ build = build
+ .file("Cargo.toml", r#"
+ [project]
+ name = "foo"
+ version = "0.5.0"
+ authors = ["wycats@example.com"]
+ "#)
+ .file("src/main.rs", format!(r#"
+ fn main() {{
+ assert_eq!(std::os::getenv("TARGET").unwrap().as_slice(), "{}");
+ }}
+ "#, alternate()).as_slice());
+ assert_that(build.cargo_process("cargo-build"),
+ execs().with_status(0));
+
let p = project("foo")
- .file("Cargo.toml", basic_bin_manifest("foo").as_slice())
- .file("src/foo.rs", r#"
+ .file("Cargo.toml", format!(r#"
+ [package]
+ name = "foo"
+ version = "0.0.0"
+ authors = []
+ build = '{}'
+ "#, build.bin("foo").display()))
+ .file("src/main.rs", r#"
use std::os;
fn main() {
assert_eq!(os::consts::ARCH, "x86");